ขั้นตอนที่ 1
ประกอบวงจรตามรูปด้านล่าง ลงในโปรแกรม Proteus ครับ
คำสั่งที่ใช้ในการโปรแกรม
while() เป็นคำสั่งทำงานซ้ำแบบมีเงื่อนไขครับ ซึ่งจะทำงานวนซ้ำไปเรื่อยๆจนกว่าเงื่อนไขจะเป็นเท็จ
for() เป็นคำสั่งทำงานซ้ำที่มีจำนวนลูปที่แน่นอน และจะหยุดทำซ้ำเมื่อเงื่อนไขเป็นเท็จ เช่น
for(i=1;i<=9;i++)
output_x(...) เป็นคำสั่งส่งข้อมูลออกทางเอาต์พุตในพอร์อตที่ต้องการตามค่าที่กำหนด เช่น output_b(0x01);
delay_ms(...) เป็นคำสั่งหน่วงเวลา เช่น delay_ms(500); โปรแกรมจะหน่วงเวลา 500ms ซึ่งค่านี้เราสามารถเปลี่ยนแปลงได้ตามความต้องการครับ
set_tris_b() เป็นคำสั่งกำหนดให้พอร์ต B เป็นเอาต์พุตทั้งหมดนั่นเอง โดยการกำหนดค่าให้กับฟังก์ชัน set_tris_b() เท่ากับ 0x00 เช่น set_tris_(0x00);
ขั้นตอนที่ 2
เริ่มเขียนโปรแกรมกันเลยครับ
#include <16F84A.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPROTECT
#use fast_io(A)
#use fast_io(B)
void main()
{
char i,j; // กำหนดตัวแปร i,j
set_tris_b(0x00); // คำสั่งกำหนดพอร์ต B ให้เป็นพอร์ตเอาต์พุตทั้งหมด
output_b(0b00000000); // คำสั่งเคลียร์พอร์ต B ให้เป็น 0 ทุกบิต
while(true) // คำสั่งวนซ้ำแบบมีเงื่อนไข
{
j=1; // กำหนดตัวแปร j=1
for(i=1;i<=8;i++) // คำสั่งทำซ้ำโดยกำหนดให้ i=1,i<=8,i=i+1
{
output_b(j); // กำหนดให้เอาต์พุตพอร์ต B = j
j=j<<1; // ให้ตัวแปร j เลื่อนบิตไปทางซ้าย 1 ตำแหน่ง
delay_ms(1000); // คำสั่งหน่วงเวลา 1 วินาที
}
}
}
การทำงานของโปรแกรม
เมื่อโปรแกรมไฟวิ่งเริ่มทำงาน LED 1 จะติดโดยหน่วงเวลา 1 วินาทีถึงจะดับ พร้อมกันนี้ LED 2 ก็จะติดด้วยโดยหน่วงเวลา 1 วินาทีเช่นกัน เป็นอย่างนี้ไปเรื่อยๆ จนถึง LED 8 แล้วก็จะวนซ้ำกลับมาติดที่ LED 1 อีกครั้ง
เมื่อโปรแกรมไฟวิ่งเริ่มทำงาน LED 1 จะติดโดยหน่วงเวลา 1 วินาทีถึงจะดับ พร้อมกันนี้ LED 2 ก็จะติดด้วยโดยหน่วงเวลา 1 วินาทีเช่นกัน เป็นอย่างนี้ไปเรื่อยๆ จนถึง LED 8 แล้วก็จะวนซ้ำกลับมาติดที่ LED 1 อีกครั้ง
ทีนี้ก็ลองแก้โปรแกรมที่บรรทัด for(i=1;i<=8;i++) ให้เป็น for(i=1;i<=5;i++) แล้วทำการคอมไพล์โปรแกรมใหม่ดูบ้างนะครับว่าLED 1 ถึง LED 8จะมีการเปลี่ยนแปลงยังไงบ้าง
แล้วลองแก้ที่บรรทัด j=1; ให้เป็น j=3; แล้วทำการคอมไพล์โปรแกรมใหม่เช่นกัน แล้วสังเกตุดูการเปลี่ยนแปลงของ LED 1 ถึง LED 8 ว่ามีการเปลี่ยนแปลงยังไงบ้าง
อีกบรรทัดครับ แก้ j=j<<1; ให้เป็น j=j<<2; แล้วทำการคอมไพล์โปรแกรมใหม่ สังเกตุดูการเปลี่ยนแปลงของ LED 1 ถึง LED 8 ว่ามีการเปลี่ยนแปลงยังไงบ้าง
ครับ
ถ้าจะเขียนคำสั่งไฟวิ่งซ้ายไปขวา ขวาไปซ้าย เขียนไงครับ
ตอบลบColumbia TiM Cotton Cotton Pants | T-Shirt.com
ตอบลบColumbia TiM titanium men\'s wedding band Cotton Pants. $40.00. Cotton Cotton Cotton Pants titanium chloride | ford edge titanium 2019 T-Shirt.com. Cotton Cotton Cotton Pants | T-Shirt.com. chi titanium flat iron Cotton Cotton 2017 ford focus titanium Cotton Pants | T-Shirt.com. Cotton Cotton Cotton Pants.